<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
            "http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML>
<HEAD>



<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<META name="GENERATOR" content="hevea 1.08">
<LINK rel="stylesheet" type="text/css" href="umsroot.css">
<TITLE>
Differences between static and dynamic code
</TITLE>
</HEAD>
<BODY >
<A HREF="umsroot064.html"><IMG SRC ="previous_motif.gif" ALT="Previous"></A>
<A HREF="umsroot062.html"><IMG SRC ="contents_motif.gif" ALT="Up"></A>
<HR>

<H2 CLASS="section"><A NAME="htoc162">11.3</A>&nbsp;&nbsp;Differences between static and dynamic code</H2>
<UL CLASS="itemize"><LI CLASS="li-itemize">
Only dynamic procedures can have clauses added or removed at run time.
<LI CLASS="li-itemize">Matching clauses (section&nbsp;<A HREF="umsroot026.html#matching">5.5</A>) are not supported by dynamic
 code. A runtime error (calling an undefined procedure &minus;?&minus;&gt;/1) will
 be raised when executing dynamic code that has a matching clause head.
<LI CLASS="li-itemize">Clauses for a dynamic procedure need not be consecutive.
<LI CLASS="li-itemize">Source tracing is not supported for dynamic procedures.
<LI CLASS="li-itemize">assert/1, retract/1 and clause/1 does not perform clause
 transformation on the clause. If clause transformation is required,
 this can be done explicitly with 
 <A HREF="../bips/kernel/compiler/expand_clause-2.html"><B>expand_clause/2</B></A><A NAME="@default643"></A>
 before.
<LI CLASS="li-itemize">Internally, dynamic procedures are represented differently from static
 procedures. The execution of dynamic procedures will generally be slower
 than for static procedures.
</UL>
<HR>
<A HREF="umsroot064.html"><IMG SRC ="previous_motif.gif" ALT="Previous"></A>
<A HREF="umsroot062.html"><IMG SRC ="contents_motif.gif" ALT="Up"></A>
</BODY>
</HTML>
